package com.huawei.hgip.paintgame.m.data;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;


import com.huawei.hgip.paintgame.util.PGUtil;


public class UserLog {
	
	/*日志后缀名*/
	public String fileType = "log.log";
	/*文件路径:软件安装目录*/
	private String SDPATH = PGUtil.ZZYY_HOME;
	
	/*在安装目录创建日志文件*/
	public boolean createLogFile() throws IOException {
		File dir = new File(SDPATH);
		if(!dir.exists()){
			dir.mkdir();
		}
		System.out.println("TestStep 007:\n"+"Start create logFile!"+"\n 007 end.");
		File file = new File(SDPATH + fileType);
		if (!file.exists()) {
			file.createNewFile();
		}
		return true;
	}
	
	/*判断安装目录是否存在日志文件,如果存在返回true*/
	/*
	public String isLogExist (){
		
		File[] files = new File(SDPATH).listFiles();
		if (files == null) {
			return userIdStr;
		}
		for (int x = 0; x < files.length; x++) {
				File tempFile = files[x];
				String fileName=tempFile.getName();
				if (fileName.endsWith(fileType)) {
					userIdStr = fileName.replace(fileType, "");
					System.out.println("userIdStr="+userIdStr);
				}
		}
		return userIdStr;
	}*/
	
	//读取日志，可以按时间或索引
	public String[] readUserLog()throws IOException{
		String fileName = SDPATH  + fileType ;
		//读取日志并按条件解析
		FileReader fr = null;
        BufferedReader br = null;
        StringBuffer sBuffer = new StringBuffer();
        try
        {
            try
            {
                fr = new FileReader(fileName);// 建立FileReader对象，并实例化为fr
            }
            catch (FileNotFoundException e)
            {
                e.printStackTrace();
            }
            br = new BufferedReader(fr);// 建立BufferedReader对象，并实例化为br
            String Line = br.readLine();// 从文件读取一行字符串
            // 判断读取到的字符串是否不为空
            int i=1;
            while (Line != null)
            {
             //System.out.println("Line"+i+" "+Line);
             sBuffer.append(Line);
                sBuffer.append("\n");
                Line = br.readLine();// 从文件中继续读取一行数据
                i=i+1;
            }
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                if (br != null)
                    br.close();// 关闭BufferedReader对象
                if (fr != null)
                    fr.close();// 关闭文件
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }
        // 输出读取的结果
     String logContent[]=sBuffer.toString().split("\n");
    //for (int i = 0; i < logContent.length; i++) {
    //	  System.out.println("logContent:"+logContent[i]);
	//}
 	 return logContent;	
	}
	
	//读取日志，可以按时间
	public boolean writeUserLog(String logForWrite) throws IOException{
		String logContent=logForWrite;
		String fileName = SDPATH  + fileType ;
		//System.out.println("TestStep 014:\n"+"logContent:"+logContent+"\nfilename="+fileName+"\n 014 end.");
		//写入格式 按读取需求 做索引 待定？  可定义索引值 最近一次索引值最大，存到最大值xxx次后做翻转
		//如果 cdcard不存在，创建日志文件失败会导致写入数据异常。
		File file = new File(fileName);
		FileOutputStream output=null;
		try {
			output = new FileOutputStream(file,true);
		//} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
		//	e.printStackTrace();
		//}
			byte buf[]=logContent.getBytes();
		//try {
			output.write(buf);
		//} catch (IOException e) {
			// TODO Auto-generated catch block
		//	e.printStackTrace();
		}
		finally{
		//	try{
				output.close();
		//	}
		//	catch(Exception e){
		//		e.printStackTrace();
		//	}
		}
		
		return true;
		
	}
}